/**
 * 
 */
package com.cuc.platform.core.dao.baseInfo;

import java.util.List;
import java.util.Map;

import org.springframework.dao.DataAccessException;

import com.cuc.platform.core.domain.baseInfo.UserInfo;


/**
 * @author peepul
 * 
 * 用户基本信息Dao
 */
public interface UserInfoDao {

	/**
	 * 根据id获取资源对象
	 * 
	 * @param id
	 * @return UserInfo
	 */
	public UserInfo getUserInfo(Long id);
	
	/**
	 * 根据id获取带组织机构的UserInfo对象
	 * 
	 * @param id
	 */
	public UserInfo getUserInfoWithOrg(Long id);
	
	/**
	 * 获取所有的用户（非分页）
	 * 
	 * @return List<UserInfo>
	 */
	public List<UserInfo> getAllUserInfos();
	
	/**
	 * 新增UserInfo对象
	 * 
	 * @param userInfo
	 */
	public void insertUserInfo(UserInfo userInfo) throws DataAccessException;
	
	/**
	 * 更新UserInfo对象
	 * 
	 * @param userInfo
	 * @throws DataAccessException
	 */
	public void updateUserInfo(UserInfo userInfo) throws DataAccessException;
	
	/**
	 * 根据id删除UserInfo对象
	 * 
	 * 注：删除成功返回值为1，如没找到要删除的数据返回0，如果删除出错，则产生异常
	 * 
	 * @param id
	 */
	public int delUserInfo(Long id) throws DataAccessException;
	
	/**
	 * 修改用户信息状态位
	 * 	  有效：1
	 * 	  无效：0
	 */
	public void updateStatus(Map<String, Object> map) throws DataAccessException;
}
